sqlserver mongodb读写性能对比 mongodb数据库和sqlserver区别 |
您所在的位置:网站首页 › mongodb和mysql的区别 性能对比 › sqlserver mongodb读写性能对比 mongodb数据库和sqlserver区别 |
一、数据库的基本概念 数据库(database)是用来组织、存储和管理数据的仓库。 常见的数据库有如下几个: MySQL 数据库(目前使用最广泛、流行度最高的开源免费数据库;社区版/企业版) Oracle 数据库(收费) SQL Server 数据库(收费) Mongodb 数据库(社区版/企业版) MySQL、Oracle、SQL Server 属于传统型数据库(关系型数据库/SQL数据库) Mongodb 属于新型数据库(非关系型数据库/NoSQL数据库) 1. 传统型数据库的数据组织结构数据组织结构:数据以什么样的结构进行存储。 传统型数据库的数据组织结构,与Excel中的数据组织结构比较类似。 每个Excel中,数据的组织结构由工作簿、工作表、数据行、列这4大部分组成 数据库(database)、数据表(table)、数据行(row)、字段(field)这4大部分组成 实际开发中库、表、行、字段的关系: 1. 一般情况下,每个项目都对应独立的数据库。 2. 不同的数据,要存储到数据库的不同表中,例如:用户数据存储到users表中,图书数据存储到books表中。 3. 每个表中具体存储哪些信息,由字段来决定,例如:我们可以为users表设计id、username、password这3个字段。 4. 表中的行,代表每一条具体的数据。 二、安装并配置MySQL对于开发人员,只需安装 MySQL Server 和 MySQL Workbench 这两个软件,就能满足开发需要了。 MySQL Server:专门用来提供数据存储和服务的软件。 MySQL Workbench:可视化的MySQL管理工具,可以方便地操作存储在MySQL Server中的数据。 三、MySQL的基本使用(一)使用 MySQL Workbench 管理数据库
(二)使用SQL管理数据库 SQL(Structured Query Language)是结构化查询语言,专门用来访问和处理数据库的编程语言。能够让我们以编程的形式,操作数据库里的数据。 三个关键点: (1)SQL是一门数据库编程语言。 (2)使用SQL语言编写出来的代码,叫做SQL语句。 (3)SQL语言智能在关系型数据库中使用(例如MySQL、Oracle、SQL Server)。非关系型数据库(例如Mongodb)不支持SQL语言。 SQL能做什么: 对数据库的数据进行增删改查 1. SQL的 SELECT 语句SELECT语句用于从表中查询数据。执行的结果被存储在一个结果表中(称为结果集)。 注意:SQL语句中的关键字对大小写不敏感。SELECT等效于select,FROM等效于from 2. SQL的 INSERT INTO 语句INSERT INTO 语句用于向数据表中插入新的数据行。 3. SQL的 UPDATE 语句UPDATE语句用于修改表中的数据。 4. SQL的 DELETE 语句DELETE 语句用于删除表中的行。 5. SQL的 WHERE 子句WHERE 子句用于限定选择的标准。在SELECT、UPDATE、DALETE语句中,皆可使用WHERE子句来限定选择的标准。 可以在WHERE子句中使用的运算符: 6. SQL的 AND 和 OR 运算符 AND 和 OR 可以在WHERE子句中把两个或多个条件结合起来 7. SQL的 ORDER BY 子句ORDER BY 语句用于根据指定的列对查询到的结果集进行排序。默认按照升序对记录进行排序,ASC关键字可省略;如果希望按照降序对记录进行排序,可以使用DESC关键字。
order by 子句的多重排序: 先按第一个条件排序,第一个条件相同的再按第二个条件排序 8. SQL的 COUNT(*) 函数COUNT(*) 函数用于返回查询结果的总数据条数。 使用 AS 关键字为列设置别名 四、在项目中操作MySQL1. 安装操作MySQL数据库的第三方模块(mysql) 2. 通过mysql模块连接到MySQL数据库 3. 通过mysql模块执行SQL语句 注意:如果执行的是select查询语句,则执行的结果是数组 SQL语句中可用 ? 占位符,对值进行占位,后续再为占位符提供真正的值 注意:如果执行的是insert into或update或delete等语句,则执行的结果results是对象,可通过其中的affectedRows属性来判断是否插入数据成功。 SQL语句中如果只有一个占位符,则可以省略数组的形式,直接写一个值 五、前后端的身份认证1. Web开发模式目前主流的Web开发模式有两种,分别是: (1)基于服务端渲染的传统Web开发模式 (2)基于前后端分离的新型Web开发模式 2. 身份认证身份认证(Authentication)又称“身份验证”、“鉴权”,是指通过一定的手段,完成对用户身份的确认。 对于服务端渲染和前后端分离这两种开发模式来说,分别有着不同的身份认证方案: (1)服务端渲染推荐使用Session认证机制 (2)前后端分离推荐使用JWT认证机制 3. Session认证机制HTTP协议的无状态性:客户端的的每次HTTP请求都是独立的,连续多个请求之间没有直接的关系,服务器不会主动保留每次HTTP请求的状态。 如何突破HTTP无状态的限制:Cookie进行身份认证(类似会员卡) (1)CookieCookie是存储在用户浏览器中的一段不超过4kb的字符串。它由一个名称(Name)、一个值(Value)和其他几个用于控制Cookie有效期、安全性、使用范围的可选属性组成。 不同域名下的Cookie各自独立,每当客户端发起请求时,会自动把当前域名下所有未过期的Cookie一同发送到服务器。 Cookie的特性:(1)自动发送(2)域名独立(3)过期时限(4)4kb限制 如何提高身份认证的安全性:会员卡(Cookie)+刷卡认证 (2)Session的工作原理 4. 在Express中使用Session认证(1)安装express-session中间件 npm install express-session (2)配置express-session中间件 (3)向session中存数据 (4)从session中取数据 (5)清空session 5. JWT认证机制Session认证的局限性: JWT(JSON Web Token)是目前最流行的跨域认证解决方案 JWT的工作原理: 总结:用户的信息通过Token字符串的形式,保存在客户端的浏览器中。服务器通过还原Token字符串的形式来认证用户的身份。 JWT的组成部分:Header(头部)、Payload(有效载荷)、Signature(签名),三者之间使用英文的 “.” 分隔 Header.Payload.Signature Payload部分才是真正的用户信息,它是用户信息经过加密之后生成的字符串。 Header和Signature是安全性相关的部分,只是为了保证Token的安全性。 JWT的使用方式: 6. 在Express中使用JWT(1)安装JWT相关的包(2个) npm install jsonwebtoken express-jwt 其中:jsonwebtoken用于生成JWT字符串,express-jwt用于将JWT字符串解析还原成JSON对象 (2)导入JWT相关的包 (3)定义secret密钥 (4)在登录成功后生成JWT字符串 调用jsonwebtoken包提供的sign()方法,将用户的信息加密成JWT字符串,响应给客户端 配置对象可以配置当前token的有效期 (5)将JWT字符串还原为JSON对象 (6)使用req.auth获取用户信息 (注意:新版本下,图中req.user应修改为req.auth) 只要配置成功了express-jwt这个中间件,就可以把解析出来的用户信息,挂载到req.user属性上。 req.user中包含哪些信息是我们自己决定的,如登录成功后,调用jwt.sign()方法生成JWT字符串时,第一个参数就是需要加密的用户信息,相当于req.auth。 注意:不要把密码加密到token字符串中,不安全 (7)捕获解析JWT失败后产生的错误 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |